# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Ray Rashif <schiv@archlinux.org>
# Contributor: SpepS <dreamspepser at yahoo dot it>

pkgname=ardour
pkgver=7.4
_commit=5e967c02a9cfc2fffadc9d0edca294ff193481fd  # refs/tags/7.4^{}
pkgrel=1
pkgdesc="Professional-grade digital audio workstation"
arch=(loong64 x86_64)
url="https://ardour.org/"
license=(
  custom:CC0
  GPL2
  MIT
)
groups=(pro-audio)
depends=(
  cairo
  gcc-libs
  glibc
  gtkmm
  hicolor-icon-theme
  libsigc++
  libx11
  sh
  taglib
)
makedepends=(
  atkmm
  aubio
  boost
  cairomm
  cppunit
  curl
  dbus
  doxygen
  fftw
  flac
  fluidsynth
  fontconfig
  freetype2
  gdk-pixbuf2
  git
  glib2
  glibmm
  graphviz
  gtk2
  hidapi
  itstool
  jack
  libarchive
  liblo
  liblrdf
  libltc
  libogg
  libpulse
  libsamplerate
  libsndfile
  libusb
  libwebsockets
  libxml2
  lilv
  lv2
  pango
  pangomm
  readline
  rubberband
  serd
  sord
  sratom
  suil
  unzip
  vamp-plugin-sdk
  waf)
optdepends=(
  'harvid: for video timeline and MP3 export'
  'new-session-manager: for session management'
  'xjadeo: for video monitoring'
)
provides=(
  ladspa-host
  lv2-host
  vamp-host
  vst-host
  vst3-host
)
source=(
  $pkgname::git+https://github.com/$pkgname/$pkgname.git#tag=$_commit
  $pkgname-midi-$pkgver.zip::http://stuff.ardour.org/loops/ArdourBundledMedia.zip
  $pkgname-7.0-re-vendor_qm-dsp.patch
)
noextract=($pkgname-midi-$pkgver.zip)
sha512sums=('SKIP'
            '94b681f989e834f5de25ce87da9c174b11d90617063f8c96147d7eb470391b35f6d54b85de16da8d963cacb01b50d1c1fab0fddd18eb3b086fe17124ecfa4f65'
            'a3da14925bc25d8a57ba3e137c4b2b04010054667ac4ae2aec116ce6c157b03c9dd76bf4d73c313022282362d19b91683f062d6ab2ee0c73a576d3fa6272bd1d')
b2sums=('SKIP'
        'e31be6b51a217e2f7f799aa1d6e8c3cd024d80ab2d8d4371496a2b8bf0215749979217b565909841a346d6b3128fbfd674d2fae64b9fe741a5b418cd184c23be'
        '73845adce9a48938cd7aef5fbc65f492e470de316620d278365d247c80caef44531e850fbd3d2f5de65a8562e67aabfd982c938439bd3670726a27bc003be017')

pkgver() {
  cd $pkgname
  git describe --tags --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
}

prepare() {
  # using vendored version of qm-dsp because qm-dsp >= 1.8.0 is not compatible
  patch -Np1 -d $pkgname -i ../$pkgname-7.0-re-vendor_qm-dsp.patch

  cd $pkgname
  # unsetting gtk2 rc (FS#54389)
  sed -e '8iexport GTK2_RC_FILES=/dev/null' -i gtk2_ardour/ardour.sh.in

  # Fixes to use system waf:
  # making sure, that subdirectories can be picked up with local includes
  touch __init__.py
  # making ancient 'misc.py' include available to system installed waf
  sed -e "s/('misc')/('misc', tooldir='tools')/" \
      -i {gtk2_ardour,headless,luasession,session_utils,libs/fst}/wscript
  # make custom 'autowaf' include compatible with system installed waf
  find . -type f \
         -iname "*wscript*" \
         -exec sed -e 's/from waflib.extras import autowaf/from tools import autowaf/g' \
                   -e 's/import waflib.extras.autowaf/from tools import autowaf/g' \
                   -i {} \;
}

build() {
  local waf_configure_options=(
    --prefix=/usr
    --configdir=/etc
    --cxx11
    --freedesktop
    --lxvst
    --nls
    --no-phone-home
    --optimize
    --ptformat
    --use-external-libs
    --with-backends="alsa,dummy,jack,pulseaudio"
  )

  cd $pkgname
  export LINKFLAGS="$LDFLAGS"
  waf configure "${waf_configure_options[@]}"
  waf build -v
}

package() {
  depends+=(
    alsa-lib libasound.so
    atkmm libatkmm-1.6.so
    aubio libaubio.so
    cairomm libcairomm-1.0.so
    curl libcurl.so
    dbus libdbus-1.so
    fftw libfftw3f.so libfftw3f_threads.so
    fluidsynth libfluidsynth.so
    fontconfig libfontconfig.so
    gdk-pixbuf2 libgdk_pixbuf-2.0.so
    glib2 libglib-2.0.so libgobject-2.0.so
    glibmm libglibmm-2.4.so
    gtk2 libgdk-x11-2.0.so libgtk-x11-2.0.so 
    jack libjack.so
    libarchive libarchive.so
    liblo liblo.so
    libpulse libpulse.so
    liblrdf liblrdf.so
    libltc libltc.so
    libsamplerate libsamplerate.so
    libsndfile libsndfile.so
    libusb libusb-1.0.so
    libwebsockets libwebsockets.so
    libxml2 libxml2.so
    lilv liblilv-0.so
    pango libpango-1.0.so libpangocairo-1.0.so libpangoft2-1.0.so
    pangomm libpangomm-1.4.so
    readline libreadline.so
    rubberband librubberband.so
    suil libsuil-0.so
    vamp-plugin-sdk libvamp-hostsdk.so libvamp-sdk.so
  )

  (
    cd $pkgname
    waf i18n --destdir="$pkgdir"
    waf install --destdir="$pkgdir"
    install -vDm 644 $pkgname.1 -t "$pkgdir/usr/share/man/man1/"
  )

  # installation of MIDI files is a bit of a horrorshow, as upstream is not flexible about tarball naming, etc.
  install -vdm 755 "$pkgdir/usr/share/$pkgname${pkgver/.*/}/media/"
  unzip $pkgname-midi-$pkgver.zip -d "$pkgdir/usr/share/$pkgname${pkgver/.*/}/media/"
  install -vdm 755 "$pkgdir/usr/share/licenses/$pkgname/"
  ln -s "/usr/share/$pkgname${pkgver/.*/}/media/MIDI Beats/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.beats"
  ln -s "/usr/share/$pkgname${pkgver/.*/}/media/MIDI Chords/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.chords"
  ln -s "/usr/share/$pkgname${pkgver/.*/}/media/MIDI Progressions/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE.progressions"
}
# vim:set ts=2 sw=2 et:
